/*
 * @(#)ConfigBuilder.java $version 2010. 8. 11
 *
 * Copyright 2007-2010 NHN Corp. All rights Reserved. 
 * NHN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.nhncorp.usf.core.parser;

import java.io.InputStream;

import com.nhncorp.usf.core.config.runtime.PageInfo;

/**
 * Dynamic Configuration 빌더.
 *
 * @author Web Platform Development Team.
 */
public interface ConfigBuilder {
    /**
     * dynamic configuration 파일을 통해 USF 필요한 객체를 생성한다.
     * 
     * @param inputStream the InputStream
     * @return the PageInfo
     * @throws Exception the Exception
     */
    PageInfo build(InputStream inputStream) throws Exception;

    /**
     * dynamic configuration 파일을 통해 USF 필요한 객체를 생성한다.
     * 
     * @param inputStream the InputStream
     * @param rootPath the path
     * @return the PageInfo
     * @throws Exception the Exception
     */
    PageInfo build(InputStream inputStream, String rootPath) throws Exception;
    
    /**
     * dynamic configuration 파일을 통해 USF 필요한 객체를 생성한다.
     * 
     * @param dynamicConfigInputStream the InputStream
     * @param validatorInputStream the InputStream
     * @param rootPath the path
     * @return the PageInfo
     * @throws Exception the Exception
     */
    PageInfo build(InputStream dynamicConfigInputStream, InputStream validatorInputStream, String rootPath) throws Exception;
}
